home *** CD-ROM | disk | FTP | other *** search
/ CinE CD 6 / CinE CD ROM 06.iso / mac / Shared.Cst / 00090_Script_90 < prev    next >
Text File  |  1996-06-22  |  14KB  |  545 lines

  1. global gQuickTimeToPlay
  2. global gNumFilms, gmode, gnumpreviews, scrolledN 
  3. global gPage, gFilmsPerPage, gnumpages, gFilmIndex, gscale, gvideoflag
  4. global database, errordatabase, fieldNames, grootpathname, gmachine, gseparator, gQTpresent
  5. global glastmovie, DEBUG, gautomode, gcannes,  rWindow, gsoundEnabled, gwin, grect, gsoundlevel
  6.  
  7. on makeDatabase castNum
  8.   -- initialize the lists
  9.   set the itemDelimiter= ";" -- could be something else, like a TAB
  10.   put [:] into database
  11.   sort database -- better performance
  12.   put [:] into record
  13.   put [] into fieldNames
  14.   -- get the data and field header structure
  15.   put field castNum into rawData
  16.   put the number of items in line 1 of rawData into fieldCount
  17.   -- put the fieldnames into a variable
  18.   put line 1 of rawData into rawFields
  19.   -- remove the field names from the data
  20.   delete line 1 of rawData
  21.   -- store the field names into a linear list
  22.   repeat with n = 1 to fieldCount
  23.     add fieldNames, value ("#" & item n of rawFields)
  24.   end repeat
  25.   -- store the number of records
  26.   put the number of lines in rawData into recordCount
  27.   
  28.   put "recordCount=" recordcount
  29.   put recordCount into gNumFilms
  30.   
  31.   -- process the lines of data into records
  32.   repeat with r = 1 to recordCount
  33.     put line r of rawData into dataLine
  34.     repeat with f = 1 to fieldCount
  35.       -- get each field of data
  36.       put item f of dataLine into dataItem
  37.       -- store the field as part of a record
  38.       addProp record, getAt(fieldNames, f), dataItem
  39.     end repeat
  40.     -- add the record to the database, r = the original record number
  41.     addProp database, record, r
  42.     put [:] into record -- reset the record holder
  43.   end repeat
  44.   
  45.   --determine and set the number of index pages
  46.   set gnumpages = gnumfilms / gfilmsperpage
  47.   if (gnumfilms mod gfilmsperpage) then
  48.     set gnumpages = gnumpages + 1
  49.   end if
  50.   
  51.   --films that do not have data (previews of next month's films do not count)
  52.   set k = gnumfilms
  53.   repeat with i = 1 to k
  54.     if  (getField (i, 9) = "0") then
  55.       put "no data, record=" k
  56.       put getField (i, 2)
  57.       set gnumfilms = gnumfilms - 1
  58.     end if
  59.   end repeat
  60.   
  61.   set gnumpreviews = k - gnumfilms
  62.   
  63.   -- show the records : debugging
  64.   --repeat with r = 1 to recordCount
  65.   --put getOne(database, r)
  66.   --end repeat
  67. end makeDatabase
  68.  
  69. on getRecord recordNum
  70.   return getone(database, recordNum)
  71. end getRecord
  72.  
  73. on getField recordNum, fieldNum
  74.   return getProp(getone(database, recordNum), getAt(fieldNames, fieldNum))
  75. end getField
  76.  
  77. on findRecord fieldNum, criteria
  78.   put count(database) into recordCount
  79.   repeat with recordNum = 1 to recordCount
  80.     put getProp(getone(database, recordNum), getAt(fieldNames, fieldNum)) into fieldData
  81.     if fieldData = criteria then
  82.       getRecord recordNum
  83.     end if
  84.   end repeat
  85. end findRecord
  86.  
  87. on getFieldName fieldNum
  88.   return getAt(fieldNames, fieldNum)
  89. end getFieldName
  90.  
  91. on ReadMyPICT filename, castname
  92.   if (DEBUG) then
  93.     put filename
  94.   end if
  95.   
  96.   set PICTfile = FileIO(mNew, "read", filename)
  97.   if (PICTfile < 0) then
  98.     error_handle (PICTfile,  filename)
  99.   end if
  100.   
  101.   if not objectp(PICTfile) then exit
  102.   --set the picture of cast castname = PICTfile(mReadPICT)
  103.   set the picture of member castname of castlib 2 = PICTfile(mReadPICT)
  104.   PICTfile(mDispose)
  105. end ReadMyPICT
  106.  
  107. on makepathname dir, prefix, suffix
  108.   global gseparator
  109.   return grootpathname & "DATA" & gseparator & dir & gseparator & prefix & suffix
  110. end makepathname
  111.  
  112. on displayposters
  113.   cursor 4
  114.   put (gPage - 1) * gFilmsPerPage + 1 into start
  115.   put start + gFilmsPerPage - 1 into stop
  116.   
  117.   set num = gnumpreviews + gnumfilms
  118.   
  119.   if (stop > num) then
  120.     put num into stop
  121.   end if
  122.   
  123.   -- set mypathname = makepathname ("", "dummy", "A0.PIC")
  124.   set mypathname = makepathname ("", "dummy", "A1.PIC")
  125.   
  126.   
  127.   set j = 0
  128.   repeat with i = start to stop
  129.     set dir = getField (i, 3) 
  130.     set prefix = getField (i, 4)
  131.     
  132.     --set mypathname = makepathname (dir, prefix, "A0.PIC")
  133.     set mypathname = makepathname (dir, prefix, "A1.PIC")
  134.     
  135.     set k =  the number of member "DUMMY A1.PIC" of castlib 2
  136.     set k = 16
  137.     readmypict (mypathname, k+j)
  138.     
  139.     put j+1 into j
  140.     set the text of cast "pagenum" = string(gpage)
  141.   end repeat
  142.   cursor 0
  143. end displayposters
  144.  
  145. on displayfilm index
  146.   global ggenres
  147.   
  148.   cursor 4
  149.   if  (getField (index, 8) = "0") then
  150.     return
  151.   end if
  152.   
  153.   debug_message ("displayfilm index=", index)
  154.   
  155.   if index > gNumFilms then
  156.     put gNumFilms into index
  157.   end if
  158.   if index < 1 then
  159.     put 1 into index
  160.     put 1 into gnumFilms
  161.   end if
  162.   
  163.   if (DEBUG) then
  164.     put index
  165.   end if
  166.   
  167.   set dir = getField (index, 3) 
  168.   set prefix = getField (index, 4)
  169.   
  170.   set mypathname = makepathname (dir, prefix, "A1.PIC")
  171.   readmypict (mypathname, 1)
  172.   
  173.   set mypathname = makepathname (dir, prefix, "P1.PIC")
  174.   readmypict (mypathname, 2)
  175.   
  176.   set mypathname = makepathname (dir, prefix, "P2.PIC")
  177.   readmypict (mypathname, 3)
  178.   
  179.   set mypathname = makepathname (dir, prefix, "P3.PIC")
  180.   readmypict (mypathname, 5)
  181.   
  182.   --caption 1
  183.   set the text of cast "text1"  to getField (index, 5)
  184.   
  185.   --caption 2
  186.   set tmp1 = getField (index, 12)
  187.   set tmp2 = getField (index, 13)
  188.   
  189.   set the text of cast "text2" to tmp1 & RETURN & RETURN & tmp2
  190.   
  191.   
  192.   set the text of cast "copyright" to getField (index, 8)
  193.   
  194.   
  195.   set tmppath = grootpathname & "MISC" & gseparator & "G" & getField (gFilmindex, 9) & ".PIC"
  196.   readmypict (tmppath, "genre")
  197.   
  198.   
  199.   updatestage
  200.   cursor 0
  201. end displayfilm
  202.  
  203. on PlayQuickTime index
  204.   global gscale, grect
  205.   
  206.   if index > gNumFilms then
  207.     put gNumFilms into index
  208.   end if
  209.   
  210.   if index < 1 then
  211.     put 1 into index
  212.   end if
  213.   
  214.   set dir = getField (index, 3) 
  215.   set prefix = getField (index, 4)
  216.   
  217.   set mypathname = makepathname (dir, prefix, "V1.MOV")
  218.   
  219.   set gQuickTimeToPlay = mypathname
  220.   
  221.   set the windowlist = []
  222.   set the windowtype of window "PLAYQT" = 4
  223.   set gwin = getat (the windowlist, 1)
  224.   set the title of gwin = getField (index, 2)
  225.   set the titlevisible of gwin = TRUE
  226.   set the modal of gwin = TRUE
  227.   
  228.   set w = value (getField (index, 10))
  229.   set h = value (getField (index, 11))
  230.   
  231.   set grect = rect(0, 0, w, h)
  232.   save_rects ()
  233.   
  234.   -- set w = value (getField (index, 10)) * gscale
  235.   -- set h = value (getField (index, 11)) * gscale
  236.   
  237.   set w = w * gscale
  238.   set h = h * gscale
  239.   
  240.   put ((the StageRight - the StageLeft) - w) / 2  + the stageleft into windowH
  241.   put ((the StageBottom - the StageTop) - h) / 2 + the StageTop into windowV
  242.   set r = rect (windowH, windowV, windowH + w, windowV + h)
  243.   set the rect of gwin = r
  244.   open gwin
  245.   movetofront gwin
  246. end PlayQuickTime
  247.  
  248. on PlayQuickTime_file fname, the_title
  249.   global gscale, grect,  gseparator
  250.   
  251.   set mypathname = grootpathname & "MISC" & gseparator & fname
  252.   put gseparator
  253.   put mypathname
  254.   
  255.   set gQuickTimeToPlay = mypathname
  256.   
  257.   set the windowlist = []
  258.   set the windowtype of window "PLAYQT" = 4
  259.   set gwin = getat (the windowlist, 1)
  260.   set the title of gwin = the_title
  261.   set the titlevisible of gwin = TRUE
  262.   set the modal of gwin = TRUE
  263.   
  264.   --  set w = value (getField (index, 10))
  265.   --  set h = value (getField (index, 11))
  266.   
  267.   set w = 309
  268.   set h = 168
  269.   
  270.   set grect = rect(0, 0, w, h)
  271.   save_rects ()
  272.   
  273.   -- set w = value (getField (index, 10)) * gscale
  274.   -- set h = value (getField (index, 11)) * gscale
  275.   
  276.   set w = w * gscale
  277.   set h = h * gscale
  278.   
  279.   put ((the StageRight - the StageLeft) - w) / 2  + the stageleft into windowH
  280.   put ((the StageBottom - the StageTop) - h) / 2 + the StageTop into windowV
  281.   set r = rect (windowH, windowV, windowH + w, windowV + h)
  282.   set the rect of gwin = r
  283.   open gwin
  284.   movetofront gwin
  285. end PlayQuickTime_file
  286.  
  287. on filmselection spritenum, n, y, start
  288.   cursor 4
  289.   set dy = 21
  290.   set space_between_buttons = 9
  291.   --set DEBUG = TRUE
  292.   
  293.   if n = 1 then
  294.     set gfilmindex = start + 1
  295.   else
  296.     set y = y + dy + space_between_buttons/2
  297.     set gfilmindex = ((y - the top of sprite  spritenum) / dy ) + start
  298.   end if
  299.   
  300.   set the movierate of sprite 21 = 0
  301.   
  302.   if (DEBUG) then
  303.     put gfilmindex
  304.     return
  305.   end if
  306.   
  307.   -- If there is no artwork associated with the film then just return
  308.   if  (getField (gFilmIndex, 8) = "0") then
  309.     return
  310.   else
  311.     --puppetsound "click"
  312.     --updatestage
  313.   end if
  314.   
  315.   -- Store the Director movie to go back to
  316.   put "MAIN.DIR" into glastmovie
  317.   debug_message ("index", gfilmindex)
  318.   
  319.   displayfilm (gfilmindex)
  320.   cursor 0
  321.   
  322.   go to frame "film"
  323. end filmselection
  324.  
  325. on debug_message message, val
  326.   if (DEBUG) then
  327.     set str = "DEBUG: {"&message & ":"  & val &"}"
  328.     put str
  329.   end if
  330. end debug_message
  331.  
  332. on error_handle error_result, filename
  333.   if (error_result < 0) then
  334.     --alert ("Erreur: [" & error_result & ":" & filename & "]")
  335.     put "Erreur: [" & error_result & ":" & filename & "]"
  336.   end if
  337. end error_handle
  338.  
  339.  
  340. on poster_select num
  341.   puppetsound "click"
  342.   updatestage
  343.   put (gPage - 1) * gFilmsPerPage + num - 1 into gFilmIndex
  344.   
  345.   
  346.   if  (getField (gFilmIndex, 9) = "0") then
  347.     return
  348.   end if
  349.   
  350.   set glastmovie = "POSTERS.DIR"
  351.   working (num)
  352.   
  353.   displayfilm (gfilmindex)
  354.   go to frame "film"
  355. end
  356.  
  357. on button_script
  358.   --puppetsprite 1, true
  359.   --puppetsound "click"
  360.   --updatestage
  361.   set ic = (the castnum of sprite the clickon)
  362.   
  363.   --repeat while the stilldown
  364.   set the castnum of sprite the clickon = the castnum of sprite the clickon + rollover ( the clickon)
  365.   updatestage
  366.   set the castnum of sprite the clickon = ic
  367.   --end repeat
  368.   puppetsound "click"
  369.   updatestage
  370.   if rollover (the clickon) = 0 then  exit
  371. end button_script
  372.  
  373. on hideDesktop
  374.   global rWindow
  375.   
  376.   if objectP (rWindow) then rWindow (mDispose)
  377.   put RearWindow (mNew, "M") into rWindow
  378.   put value (rWindow ) into resultCode
  379.   if (resultCode < 0) then
  380.     alert "A" && string (resultCode) && "error occurred while trying to hide the desktop."
  381.   end if
  382. end hideDesktop
  383.  
  384. on handlekey
  385.   global gsoundEnabled
  386.   
  387.   if the key = "-" then
  388.     set gsoundEnabled = not gsoundEnabled
  389.     set the soundEnabled = gsoundEnabled
  390.   end if
  391.   dontPassEvent
  392. end handlekey
  393.  
  394. on handcursor spritenum
  395.   set hand = the number of cast "hand"
  396.   set handmask = the number of cast "handmask"
  397.   
  398.   set the cursor of sprite spritenum = [hand, handmask]
  399. end handcursor
  400.  
  401. on normal_cursor spritenum
  402.   cursor -1
  403. end handcursor
  404.  
  405. on watch_cursor spritenum
  406.   cursor 4
  407. end handcursor
  408.  
  409. on reset_cursors
  410.   normal_cursor
  411.   repeat with i = 1 to 20
  412.     
  413.     set the cursor of sprite i = 0
  414.     
  415.   end repeat
  416. end reset_cursors
  417.  
  418. on to_script
  419.   -- if there is already a movie playing then don't do anything
  420.   if (count (the windowlist) <> 0) then
  421.     return
  422.   end if
  423.   
  424.   if (gmode = "auto") then
  425.     repeat with i = 1 to 2
  426.       
  427.       set the castNum of sprite 12 = the castnum of sprite (13 + i)
  428.       set the text of cast "text1"  to getField (gfilmindex, 5 + i)
  429.       updatestage 
  430.       countTime (2)
  431.     end repeat
  432.     
  433.     countTime (2)
  434.     
  435.     if gQTpresent then
  436.       set gscale = 1
  437.       PlayQuickTime gFilmIndex
  438.     end if
  439.   end if
  440.   set the timeoutScript to EMPTY
  441. end to_script
  442.  
  443. on to_script2
  444.   -- if there is already a movie playing then don't do anything
  445.   if (count (the windowlist) <> 0) then
  446.     return
  447.   end if
  448.   if (gmode = "auto") then
  449.     puppetsprite 11, FALSE
  450.     puppetsprite 12, FALSE
  451.     go to frame "black"
  452.   end if
  453.   set the timeoutScript to EMPTY
  454. end to_script
  455.  
  456. on countTIme secs
  457.   starttimer
  458.   repeat while the timer < (secs * 60)
  459.     nothing
  460.   end repeat
  461. end countTime
  462.  
  463. on list_films
  464.   global gnumfilms
  465.   
  466.   set saver = FileIO(mNew, "?write", "Titles")
  467.   
  468.   if (saver < 0) then
  469.     return
  470.   end if
  471.   
  472.   if not objectp(saver) then
  473.     alert ("fsave: error")
  474.     exit
  475.   end if
  476.   
  477.   saver (mSetFinderInfo, "TEXT", "ttxt")
  478.   
  479.   repeat with i = 1 to gnumfilms
  480.     set tmp = getfield (i, 2)
  481.     if (i < gnumfilms) then
  482.       set tmp = tmp & RETURN
  483.     end if
  484.     saver(mWriteString, tmp)
  485.   end repeat
  486.   
  487.   saver(mDispose)
  488. end
  489.  
  490. on make_eps
  491.   global gnumfilms
  492.   
  493.   set saver = FileIO(mNew, "?write", "Titles.eps")
  494.   
  495.   if (saver < 0) then
  496.     return
  497.   end if
  498.   
  499.   if not objectp(saver) then
  500.     alert ("fsave: error")
  501.     exit
  502.   end if
  503.   
  504.   saver (mSetFinderInfo, "TEXT", "ttxt")
  505.   
  506.   saver (mWriteString, "%!PS-Adobe-2.0 EPSF-1.2" & RETURN)
  507.   set texth = 18
  508.   set spacing = 4
  509.   set mx = 12
  510.   set h = (texth * gnumfilms) + (spacing * gnumfilms)
  511.   saver (mWriteString, "%%BoundingBox:  0 0 400 " & h & RETURN & RETURN)
  512.   
  513.   saver (mWriteString, the text of cast "Postscript" & RETURN)
  514.   
  515.   set y = 3
  516.   
  517.   repeat with i = gnumfilms down to 1
  518.     set y = y + spacing/2
  519.     set tmp = string (mx) & " " & string (y) & " moveto" & RETURN
  520.     saver (mWriteString, tmp)
  521.     
  522.     set tmp = getfield (i, 2)
  523.     set tmp = "(" & "ò " & tmp & ")" & " show" & RETURN
  524.     saver (mWriteString, tmp)
  525.     
  526.     set y = y + texth + spacing/2
  527.     set tmp = string (mx) & " " & string (y) & " moveto" & RETURN
  528.     saver (mWriteString, tmp)
  529.   end repeat
  530.   
  531.   saver (mWriteString, "showpage" & RETURN)
  532.   saver(mDispose)
  533. end
  534.  
  535. on ascii
  536.   repeat with i = 0 to 255
  537.     set d2 = i/64
  538.     set  d1= (i-(d2*64))/8
  539.     set d0= (i-((d2*64)+(d1*8)))
  540.     put i, d2, d1, d0, numtochar (i)
  541.     
  542.   end repeat
  543. end ascii
  544.  
  545.